package com.bto.solar.work.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.sql.Timestamp;

/**
 * <p>
 * 施工信息
 * </p>
 *
 * @author adrian
 * @since 2023-08-28
 */
@Getter
@Setter
@Accessors(chain = true)
@ApiModel(value = "Construct对象", description = "施工信息")
public class Construct implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("订单ID")
    @TableId(value = "order_id", type = IdType.INPUT)
    private String orderId;

    @ApiModelProperty("施工单位")
    private String organization;

    @ApiModelProperty("施工负责人")
    private String personLiable;

    @ApiModelProperty("施工负责人电话")
    private String phone;

    @ApiModelProperty("开工时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Timestamp startTime;

    @ApiModelProperty("预计完工时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Timestamp preEndTime;

    @ApiModelProperty("实际完工时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Timestamp actEndTime;

    @ApiModelProperty("验收时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Timestamp acceptTime;

    @ApiModelProperty("施工备注（选填）")
    private String remarks;

    @ApiModelProperty("施工使用组件数量（块）")
    private Integer moduleNumberReality;

    @ApiModelProperty("完工容量（W）（投保容量调用）")
    private Integer installedCapacityReality;

    @ApiModelProperty("电站基础照+来料检验")
    private String electricStationMaterial;

    @ApiModelProperty("支架+防水槽安装")
    private String trestleDistributionBox;

    @ApiModelProperty("逆变器和配电箱")
    private String inverterDistributionBox;

    @ApiModelProperty("组件安装")
    private String componentInstallation;

    @ApiModelProperty("线缆安装")
    private String wireRigging;

    @ApiModelProperty("接地系统")
    private String groundingSystem;

    @ApiModelProperty("施工自检单")
    private String completionInspection;

    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private Timestamp createTime;

    @ApiModelProperty("更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Timestamp updateTime;
}
